home *** CD-ROM | disk | FTP | other *** search
/ Network PC / Network PC.iso / amiga utilities / graphics / fractals / amountains / doargs.h < prev    next >
Encoding:
C/C++ Source or Header  |  1997-11-20  |  2.4 KB  |  66 lines

  1. #ifndef DOARGS_H
  2. #define DOARGS_H
  3.  
  4. /************************************************************************/
  5. /* DoArgs.h                                                                */
  6. /*                                                                        */
  7. /* Sophisticated argument evaluation                                    */
  8. /************************************************************************/
  9.  
  10. #ifndef UTILITY_TAGITEM_H
  11. #    include <utility/tagitem.h>
  12. #endif
  13.  
  14. typedef struct {
  15.     void     *DAK_MemPool;
  16.     STRPTR      DAK_Template;
  17.     int          DAK_NArgs;
  18.     LONG     *DAK_Array;
  19.     int          DAK_ArgC;
  20.     char    **DAK_ArgV;
  21. } DAKey;
  22.  
  23. /* -------------------------------------------------------------------- */
  24. /* Tags valid for all parameter types                                    */
  25. /* -------------------------------------------------------------------- */
  26.  
  27. #define DA_Dummy            (TAG_USER + 10000)
  28.  
  29. #define DA_Type                (DA_Dummy +     0)    // datatype specifier
  30. #define DA_Result            (DA_Dummy +     1)    // pointer to pointer to data or pointer to data
  31. #define DA_Default            (DA_Dummy +     2)    // default value or pointer there
  32. #define DA_Minval            (DA_Dummy +     3)  // minimum required value or pointer there
  33. #define DA_Maxval            (DA_Dummy +     4)    // minimum required value or pointer there
  34. #define DA_Name                (DA_Dummy +     5)    // parameter name
  35. #define DA_Alias            (DA_Dummy +     6)    // alternative parameter name
  36. #define DA_Helptext            (DA_Dummy +     7)    // extended help
  37. #define DA_Passed_Private    (DA_Dummy +     8)  // private!
  38. #define DA_Required_S        (DA_Dummy +     9)    // private!
  39. #define DA_Required            DA_Passed_Private, FALSE,\
  40.                             DA_Required_S
  41. #define DA_TTIconName        (DA_Dummy +    10)    // char *, name of icon for tooltypes
  42. #define DA_FailOnBounds        (DA_Dummy +    11)    // BOOL
  43. #define DA_Passed            (DA_Dummy +    12)    // BOOL *
  44. #define DA_ProvideMem        (DA_Dummy +    13)    // BOOL
  45. #define DA_AngleModulo360    (DA_Dummy +    14)    // BOOL, angle is modulo 360°
  46. #define DA_AngleModulo180    (DA_Dummy +    15)    // BOOL, angle is modulo 180°
  47. #define DA_AngleModulo90    (DA_Dummy +    16)    // BOOL, angle is modulo 90°
  48. #define DA_AngleModulo        (DA_Dummy +    17)    // double *, arbitrary modulo
  49.  
  50. /* -------------------------------------------------------------------- */
  51. /* definitions for DA_Type                                                */
  52. /* -------------------------------------------------------------------- */
  53.  
  54. #define DAT_BOOL            1
  55. #define DAT_INTEGER            2
  56. #define DAT_UNSIGNED        3
  57. #define DAT_STRING            4
  58. #define DAT_MULTIPLE        5
  59. #define DAT_DOUBLE            6
  60. #define DAT_ANGLE            7
  61.  
  62. extern DAKey *DoArgs( int, char **, ... );
  63. extern void FreeDAKey( DAKey * );
  64.  
  65. #endif
  66.